0 Prolog
↳1 PrologToPrologProblemTransformerProof (⇒, 88 ms)
↳2 Prolog
↳3 PrologToPiTRSProof (⇒, 14 ms)
↳4 PiTRS
↳5 DependencyPairsProof (⇔, 60 ms)
↳6 PiDP
↳7 DependencyGraphProof (⇔, 0 ms)
↳8 AND
↳9 PiDP
↳10 UsableRulesProof (⇔, 0 ms)
↳11 PiDP
↳12 PiDPToQDPProof (⇒, 0 ms)
↳13 QDP
↳14 QDPSizeChangeProof (⇔, 0 ms)
↳15 YES
↳16 PiDP
↳17 UsableRulesProof (⇔, 0 ms)
↳18 PiDP
↳19 PiDPToQDPProof (⇒, 0 ms)
↳20 QDP
↳21 QDPSizeChangeProof (⇔, 0 ms)
↳22 YES
preorderC_in_ga(T5, T7) → U7_ga(T5, T7, pdlA_in_ga(T5, T7))
pdlA_in_ga(nil, []) → pdlA_out_ga(nil, [])
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U1_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, X37))
pdlB_in_gaa(nil, T69, T69) → pdlB_out_gaa(nil, T69, T69)
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U4_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U5_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U6_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T114, T116, X121)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, X120)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U1_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, X37)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → U3_ga(T57, T58, T59, T37, pdlA_in_ga(T59, T61))
U3_ga(T57, T58, T59, T37, pdlA_out_ga(T59, T61)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
U7_ga(T5, T7, pdlA_out_ga(T5, T7)) → preorderC_out_ga(T5, T7)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
preorderC_in_ga(T5, T7) → U7_ga(T5, T7, pdlA_in_ga(T5, T7))
pdlA_in_ga(nil, []) → pdlA_out_ga(nil, [])
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U1_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, X37))
pdlB_in_gaa(nil, T69, T69) → pdlB_out_gaa(nil, T69, T69)
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U4_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U5_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U6_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T114, T116, X121)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, X120)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U1_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, X37)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → U3_ga(T57, T58, T59, T37, pdlA_in_ga(T59, T61))
U3_ga(T57, T58, T59, T37, pdlA_out_ga(T59, T61)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
U7_ga(T5, T7, pdlA_out_ga(T5, T7)) → preorderC_out_ga(T5, T7)
PREORDERC_IN_GA(T5, T7) → U7_GA(T5, T7, pdlA_in_ga(T5, T7))
PREORDERC_IN_GA(T5, T7) → PDLA_IN_GA(T5, T7)
PDLA_IN_GA(tree(T57, T58, T59), .(T58, T37)) → U1_GA(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, X37))
PDLA_IN_GA(tree(T57, T58, T59), .(T58, T37)) → PDLB_IN_GAA(T57, T37, X37)
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → U4_GAA(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → PDLB_IN_GAA(T112, T92, X120)
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → U5_GAA(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_GAA(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_GAA(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U5_GAA(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → PDLB_IN_GAA(T114, T116, X121)
PDLA_IN_GA(tree(T57, T58, T59), .(T58, T37)) → U2_GA(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_GA(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → U3_GA(T57, T58, T59, T37, pdlA_in_ga(T59, T61))
U2_GA(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → PDLA_IN_GA(T59, T61)
preorderC_in_ga(T5, T7) → U7_ga(T5, T7, pdlA_in_ga(T5, T7))
pdlA_in_ga(nil, []) → pdlA_out_ga(nil, [])
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U1_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, X37))
pdlB_in_gaa(nil, T69, T69) → pdlB_out_gaa(nil, T69, T69)
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U4_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U5_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U6_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T114, T116, X121)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, X120)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U1_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, X37)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → U3_ga(T57, T58, T59, T37, pdlA_in_ga(T59, T61))
U3_ga(T57, T58, T59, T37, pdlA_out_ga(T59, T61)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
U7_ga(T5, T7, pdlA_out_ga(T5, T7)) → preorderC_out_ga(T5, T7)
PREORDERC_IN_GA(T5, T7) → U7_GA(T5, T7, pdlA_in_ga(T5, T7))
PREORDERC_IN_GA(T5, T7) → PDLA_IN_GA(T5, T7)
PDLA_IN_GA(tree(T57, T58, T59), .(T58, T37)) → U1_GA(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, X37))
PDLA_IN_GA(tree(T57, T58, T59), .(T58, T37)) → PDLB_IN_GAA(T57, T37, X37)
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → U4_GAA(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → PDLB_IN_GAA(T112, T92, X120)
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → U5_GAA(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_GAA(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_GAA(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U5_GAA(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → PDLB_IN_GAA(T114, T116, X121)
PDLA_IN_GA(tree(T57, T58, T59), .(T58, T37)) → U2_GA(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_GA(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → U3_GA(T57, T58, T59, T37, pdlA_in_ga(T59, T61))
U2_GA(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → PDLA_IN_GA(T59, T61)
preorderC_in_ga(T5, T7) → U7_ga(T5, T7, pdlA_in_ga(T5, T7))
pdlA_in_ga(nil, []) → pdlA_out_ga(nil, [])
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U1_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, X37))
pdlB_in_gaa(nil, T69, T69) → pdlB_out_gaa(nil, T69, T69)
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U4_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U5_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U6_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T114, T116, X121)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, X120)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U1_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, X37)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → U3_ga(T57, T58, T59, T37, pdlA_in_ga(T59, T61))
U3_ga(T57, T58, T59, T37, pdlA_out_ga(T59, T61)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
U7_ga(T5, T7, pdlA_out_ga(T5, T7)) → preorderC_out_ga(T5, T7)
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → U5_GAA(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_GAA(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → PDLB_IN_GAA(T114, T116, X121)
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → PDLB_IN_GAA(T112, T92, X120)
preorderC_in_ga(T5, T7) → U7_ga(T5, T7, pdlA_in_ga(T5, T7))
pdlA_in_ga(nil, []) → pdlA_out_ga(nil, [])
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U1_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, X37))
pdlB_in_gaa(nil, T69, T69) → pdlB_out_gaa(nil, T69, T69)
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U4_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U5_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U6_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T114, T116, X121)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, X120)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U1_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, X37)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → U3_ga(T57, T58, T59, T37, pdlA_in_ga(T59, T61))
U3_ga(T57, T58, T59, T37, pdlA_out_ga(T59, T61)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
U7_ga(T5, T7, pdlA_out_ga(T5, T7)) → preorderC_out_ga(T5, T7)
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → U5_GAA(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_GAA(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → PDLB_IN_GAA(T114, T116, X121)
PDLB_IN_GAA(tree(T112, T113, T114), .(T113, T92), X121) → PDLB_IN_GAA(T112, T92, X120)
pdlB_in_gaa(nil, T69, T69) → pdlB_out_gaa(nil, T69, T69)
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U4_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U5_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U4_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, X120)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U5_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U6_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T114, T116, X121)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
PDLB_IN_GAA(tree(T112, T113, T114)) → U5_GAA(T114, pdlB_in_gaa(T112))
U5_GAA(T114, pdlB_out_gaa) → PDLB_IN_GAA(T114)
PDLB_IN_GAA(tree(T112, T113, T114)) → PDLB_IN_GAA(T112)
pdlB_in_gaa(nil) → pdlB_out_gaa
pdlB_in_gaa(tree(T112, T113, T114)) → U4_gaa(pdlB_in_gaa(T112))
pdlB_in_gaa(tree(T112, T113, T114)) → U5_gaa(T114, pdlB_in_gaa(T112))
U4_gaa(pdlB_out_gaa) → pdlB_out_gaa
U5_gaa(T114, pdlB_out_gaa) → U6_gaa(pdlB_in_gaa(T114))
U6_gaa(pdlB_out_gaa) → pdlB_out_gaa
pdlB_in_gaa(x0)
U4_gaa(x0)
U5_gaa(x0, x1)
U6_gaa(x0)
From the DPs we obtained the following set of size-change graphs:
PDLA_IN_GA(tree(T57, T58, T59), .(T58, T37)) → U2_GA(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_GA(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → PDLA_IN_GA(T59, T61)
preorderC_in_ga(T5, T7) → U7_ga(T5, T7, pdlA_in_ga(T5, T7))
pdlA_in_ga(nil, []) → pdlA_out_ga(nil, [])
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U1_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, X37))
pdlB_in_gaa(nil, T69, T69) → pdlB_out_gaa(nil, T69, T69)
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U4_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U5_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U5_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U6_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T114, T116, X121)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U4_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, X120)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U1_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, X37)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
pdlA_in_ga(tree(T57, T58, T59), .(T58, T37)) → U2_ga(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_ga(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → U3_ga(T57, T58, T59, T37, pdlA_in_ga(T59, T61))
U3_ga(T57, T58, T59, T37, pdlA_out_ga(T59, T61)) → pdlA_out_ga(tree(T57, T58, T59), .(T58, T37))
U7_ga(T5, T7, pdlA_out_ga(T5, T7)) → preorderC_out_ga(T5, T7)
PDLA_IN_GA(tree(T57, T58, T59), .(T58, T37)) → U2_GA(T57, T58, T59, T37, pdlB_in_gaa(T57, T37, T61))
U2_GA(T57, T58, T59, T37, pdlB_out_gaa(T57, T37, T61)) → PDLA_IN_GA(T59, T61)
pdlB_in_gaa(nil, T69, T69) → pdlB_out_gaa(nil, T69, T69)
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U4_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, X120))
pdlB_in_gaa(tree(T112, T113, T114), .(T113, T92), X121) → U5_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T112, T92, T116))
U4_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, X120)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
U5_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T112, T92, T116)) → U6_gaa(T112, T113, T114, T92, X121, pdlB_in_gaa(T114, T116, X121))
U6_gaa(T112, T113, T114, T92, X121, pdlB_out_gaa(T114, T116, X121)) → pdlB_out_gaa(tree(T112, T113, T114), .(T113, T92), X121)
PDLA_IN_GA(tree(T57, T58, T59)) → U2_GA(T59, pdlB_in_gaa(T57))
U2_GA(T59, pdlB_out_gaa) → PDLA_IN_GA(T59)
pdlB_in_gaa(nil) → pdlB_out_gaa
pdlB_in_gaa(tree(T112, T113, T114)) → U4_gaa(pdlB_in_gaa(T112))
pdlB_in_gaa(tree(T112, T113, T114)) → U5_gaa(T114, pdlB_in_gaa(T112))
U4_gaa(pdlB_out_gaa) → pdlB_out_gaa
U5_gaa(T114, pdlB_out_gaa) → U6_gaa(pdlB_in_gaa(T114))
U6_gaa(pdlB_out_gaa) → pdlB_out_gaa
pdlB_in_gaa(x0)
U4_gaa(x0)
U5_gaa(x0, x1)
U6_gaa(x0)
From the DPs we obtained the following set of size-change graphs: